define(function(require, exports, module) {
   var $ = require('$');

/*
scroll-row

v0.9.1
1，修复上滚多行bug
2，鼠标经过停止自动计时
2014-01-22
v0.9.2
1,调整参数覆盖顺序：data>config>default
*/
	$.fn.scrollrow=function(config){
		var Default={
				 up:"#btn1",
				 down:"#btn2",
				 line:1,
				 speed:500,
				 timer:3000
			 },
			 opt=$.extend(Default,config || {},$(this).data('option') || {}),
			 _btnUp = $(opt.up),
			 _btnDown = $(opt.down),
			 _T,
			 _this=$(this).find("ul"),
			 lineH=_this.find("li").outerHeight(true), 
			 cols=Math.floor(_this.width()/_this.find("li").outerWidth()),
			 lasted,
			 upHeight=0-opt.line*lineH;
		//滚动条件不成立	 
		if(Math.ceil(_this.find("li").length/cols)*lineH<=$(this).height()) {
			_btnUp.remove();
			_btnDown.remove();
			return;
			};
		function scrollUp (){
			_this.stop(1,0).animate({
				marginTop:upHeight
				},opt.speed
				,function(){
					_this.css('marginTop',0);
					for(i=1;i<=opt.line;i++){_this.find("li:lt("+cols+")").appendTo(_this);};
				})
		 };
		function scrollDown(){
			lasted=_this.find("li").length-cols-1;
			for(i=1;i<=opt.line;i++){_this.find("li:gt("+lasted+")").show().prependTo(_this)};
			_this.css({marginTop:upHeight}).stop(1,0).animate({
					marginTop:0
				},opt.speed)
		 };
		if(opt.timer) {
			_T = setInterval(function(){scrollDown()},opt.timer);
			$(this).hover(function(){
				 clearInterval(_T)
			 },function(){
				 _T = setInterval(function(){scrollDown()},opt.timer);
				 })
			_btnUp.parent().hover(function(){
				 clearInterval(_T)
			 },function(){
				 _T = setInterval(function(){scrollDown()},opt.timer);
				 })
			
		};
		_btnUp.click(function(){scrollUp()});
		_btnDown.click(function(){scrollDown()});
	};

});
